home *** CD-ROM | disk | FTP | other *** search
/ TPUG - Toronto PET Users Group / TPUG Users Group CD / TPUG Users Group CD.iso / PLUS4 / plus4disk2.d64 / ch6.05 y_n tabs < prev    next >
Text File  |  2009-01-03  |  8KB  |  89 lines

  1. Ç*NB"1:CH6.05  Y/N TABS"
  2. Ç*SP0:LM8:RM62:PL66:PG59
  3. Ç*VP3:HL8:HR72:HD0:├16/+4: ┘/╬ ╘┴┬╙                    ,,╙ECTION XX
  4. Ç*HS2:------------------------------------,,----------
  5. Ç*FT0:-----------------------,,----------
  6. Ç*FS3:(C) 1984 ┼LIZABETH ─EAL,,         Ç#
  7. ╙ECTION
  8. Ç*LN2:CN1;╘┴┬╒╠┴╘╔╬╟ ┴╬─ ═┴╘├╚╔╬╟Ç*LN2:CN0
  9.      ┴ COMPUTER CAN BE USED TO TABULATE ANSWERS TO SURVEYS OR TESTS WHICH HAVE SPECIFIC ANSWERS RATHER THAN SENTENCES OR RANGES OF NUMBERS. ╘ABULATING SURVEYS IS TEDIOUS AND ERROR-PRONE WORK. ╬OW YOU CAN DO IT WITH LITTLE EFFORT, RIGHT IN THE COMFORT OF YOUR HOME!
  10.  
  11.      ╧FTEN THE ANSWERS ARE OF THE YES-NO OR TRUE-FALSE VARIETY. ╙OMETIMES THEY ARE IN MULTIPLE CHOICE FORMAT, WITH ANSWERS CODED BY LETTERS A,B,C,D AND SO ON.
  12.  
  13.      ╨ERHAPS WE'RE NOT EVEN DEALING WITH SERIOUS SURVEYS. ╨ERHAPS WE HAVE A SCHEDULING PROBLEM FOR A VERY IMPORTANT CLUB MEETING. ╟IVEN A DOZEN PEOPLE, IT IS NOT EASY TO PICK A DAY AND TIME THAT SUITS EVERYBODY. ┘OU HEAR, "╙ORRY, ╔ FISH ╞RIDAYS" OR "╔ CAN'T MAKE IT ╘HURSDAY AT 5" AND ROUND AND ROUND, WHILE EVERYBODY IS GETTING CONFUSED IN THEIR CALENDAR READING.
  14.  
  15.      ╘HIS AND SIMILAR QUESTIONS, IF THEY CAUSE YOU TROUBLE, CAN BE ANSWERED WITH THE HELP OF A LITTLE COMPUTER. ╔F YOU MANAGE TO TABULATE PEOPLE AND THEIR PREFERENCES FOR ISSUES, DATES OR TIMES, YOU CAN THEN ASK THE COMPUTER TO PINPOINT THE SOLUTION. ╠ET'S DO IT.
  16.  
  17.      ╔N A ONE-SHOT DEAL, SUCH AS THE SCHEDULING PROBLEM, YOU CAN TYPE IN THE DATA INTO THE PROGRAM. ╔F YOU ARE DEALING WITH SURVEYS, YOU CAN DO THE SAME, OR YOU CAN HOLD THE DATA ON A CASSETTE TAPE OR DISK. ╘HIS PROGRAM SHOWS ─┴╘┴ LINES, FOR SIMPLICITY.
  18.  
  19. // PRG: Y/NTAB+MATCH //
  20.  
  21. Ç*FP12
  22. ***  ╓┴╥╔┴┬╠┼╙  ***
  23.  
  24. ═$   PATTERN STRING (MASK)
  25. ╠╬   ITS LENGTH IN CHARACTERS
  26. ╘()  NUMBER OF "1" ANSWERS PER QUESTION
  27.      IN THE WHOLE DATA
  28. ─╓   SCREEN OR PRINTER OUTPUT DEVICE
  29. ═╘$  MESSAGE TO PRINT
  30. ╦╘   COUNT OF ITEMS
  31. ╓$   WORKING VALUE, WHAT WE READ IN
  32. ┴$   WORKING VALUE, ONE CHARACTER IN ╓$
  33. ╙    SUM OF MATCHES
  34.  
  35. ***  ╔╬╙╘╥╒├╘╔╧╬╙  ***
  36.  
  37.      ┘OU DO NOT HAVE TO TYPE SPACES AND THE COLONS AT THE BEGINNING OF EACH LINE. ╘HEY ARE ONLY USED TO INDENT THE LOOPS SO YOU CAN SEE BETTER WHAT IS GOING ON.
  38.      ╘HERE ARE TWO OPTIONS ALREADY CODED IN FOR YOU, FOR DIFFERENT WAYS OF TABULATING. ╞OLLOW THE LOGIC BELOW TO SEE WHAT TO DO.
  39.  
  40.      ╘HERE IS NO INPUT TO THE PROGRAM. ┘OU CAN MODIFY THE PROGRAM SO YOU CAN PRACTICE THE AVAILABLE OPTIONS BY CHANGING THE CODE AND THE DATA.
  41.  
  42.      ╥╒╬ THE PROGRAM. ╘HE OUTPUT WILL LOOK LIKE THE ILLUSTRATION SHOWN LATER ON THIS THIS SECTION. ╘HE PROGRAM STOPS BY ITSELF.
  43.  
  44. ***  ─┼╘┴╔╠╙  ***
  45.  
  46.      ╫E HAVE EIGHT PEOPLE (DOWN), WHOSE ANSWERS TO SEVEN YES-NO QUESTIONS (FIELDS) GO FROM LEFT TO RIGHT. ╧R WE MAY HAVE A LIST OF EIGHT CITIES AND THEIR SEVEN CHARACTERISTICS. ╔T COULD BE A PANEL OF LIGHTS INDICATING SPECIFIC CONDITIONS IN SOME MACHINE. ╘HE PROGRAM DOESN'T KNOW WHAT THE SUBJECT MATTER OF THE TEST IS. ┴LL IT CARES IS THAT WE GIVE IT A CONSISTENT LIST OF ONES AND ZEROS TO WORK WITH.
  47.  
  48.      ╬EEDLESS TO SAY, YOU ARE NOT LIMITED TO 8 PEOPLE, NOR 7 QUESTIONS. ╬UMBER OF QUESTIONS ACROSS EACH RECORD IS DEFINED BY ╠╬, THE LENGTH OF THE CHARACTER STRING IN ─┴╘┴ LINE 9000. ╬UMBER OF SUCH RECORDS IS IN YOUR HANDS. ╙O LONG AS THE LAST DATA LINE CONTAINS "┌┌┌", YOU CAN WRITE AS MANY AS YOU WISH.
  49.  
  50.      ┴PPROXIMATELY HOW MANY?  ╥ULE OF THUMB: IF ╪=╞╥┼(0), WHICH IS AVAILABLE MEMORY, WE CAN HAVE
  51.  
  52. ╬╥=╞╥┼(0)/(╠╬+5+2)-7*╠╬
  53.  
  54.      SUCH RECORDS. ╫E NEED TO BALANCE RECORD LENGTH WITH THE NUMBER OF RECORDS, OF COURSE: THE MORE QUESTIONS YOU ASK, THE FEWER PEOPLE YOU CAN HANDLE. ╔F YOU ASK 30 QUESTIONS, THEN IN THE ├OMMODORE-16 COMPUTER YOU COULD HANDLE ABOUT 80 PEOPLE. ╔N A ╨LUS4 MACHINE, THIS COMES OUT TO OVER 1000 PEOPLE.
  55.  
  56.      ╘HE ROUTINE FIRST TABULATES THE TOTAL NUMBER OF YES-ANSWERS ACROSS THE 7 QUESTIONS. ╚ERE, THE SCREEN SHOWS 4 FOR EACH QUESTION. ╘HIS IS DONE IN LINES 140-210. ╘HE RECORDS ARE READ IN AND CHECKED FOR THE PRESENCE OF "1".
  57.  
  58.      ╬OW THE FUN BEGINS. ╫E CAN PULL ALL THE RECORDS THAT MATCH A CERTAIN COMBINATION OF ANSWERS. ╔N ADDITION TO FEEDING THE COMPUTER THE PEOPLE-RECORDS, WE GIVE IT A PATTERN OF ANSWERS WE'RE INTERESTED IN. ╫E CALL THIS PATTERN A "MASK". ╘HE PATTERN IS IN THE FIRST DATA LINE WHICH CONTAINS SEVERAL STARS. ╙TARS INDICATE "DON'T CARE FIELDS", ITEMS WE ARE NOT CURRENTLY INTERESTED IN. ┘OU CAN SEE THAT WE HAVE AN INTEREST IN ITEMS 3, 4 AND 6.
  59.  
  60.      ╘WO MATCHING OPTIONS ARE CODED. ╘HE PROGRAM IS THE SAME FOR BOTH, WITH THE EXCEPTION OF LINES 280-290. ─EPENDING ON WHAT WE WANT TO DO WE CAN USE EITHER LINE OF CODE BY MAKING THE LINE WE DO NOT WANT A ╥┼═ARK STATEMENT.
  61.  
  62.      (1)  ╫HEN LINE 280 HAS NO ╥┼═ ON IT, AND LINE 290 DOES, WE CAN PULL ALL THE RECORDS THAT ANSWERED "YES" TO QUESTION 3, ┴╬─ "YES" TO QUESTION 4, ┴╬─ "NO" TO QUESTION 6. ╘HE "┴╬─" IDEA MEANS THAT ALL THE ANSWERS MUST MATCH THE CRITERIA LIST. ╔N THIS EXAMPLE, RECORDS NUMBER 4 AND 7 ARE SHOWN, AS THEY ARE THE ONLY ONES THAT MEET THIS CRITERION.
  63.  
  64. // PIC: Y/N.1 //
  65.  
  66.      (2)  ╫HEN LINE 290 HAS NO ╥┼═ ON IT, AND LINE 280 DOES, WE PULL ALL THE RECORDS THAT HAVE "YES" ON QUESTION 3, ╧╥ "YES" ON QUESTION 4, ╧╥ "NO" ON QUESTION 6. ╘HE "╧╥" IDEA IS DEFINED AS "DO ANY ANSWERS MATCH?" - SO LONG AS AT LEAST ONE ANSWER MATCHES, THE RECORD GETS FLAGGED. ╔N THIS EXAMPLE THE LIST SHOWS SIX OF THE EIGHT RECORDS MEETING THIS CRITERION.
  67.  
  68. // PIC: Y/N.2 //
  69.  
  70. ***  ─┼╘┴╔╠╙ ┴╬─ ═╧╥┼ ╨╥╧╩┼├╘╙  ***
  71.  
  72.      ╘HIS IS A LAZY WAY OF WRITING CODE - ONE PROGRAM FOR TWO THINGS, BUT IT MAKES IT EASY TO TYPE IN AND TALK ABOUT. ╫HEN YOU FEEL AMBITIOUS IN YOUR CODING EFFORTS, YOU COULD INCLUDE A QUESTION "WHAT SORT OF MATCHING DO YOU WANT" AND LET THE COMPUTER DECIDE WHETHER TO USE LINE 280 OR 290. ╚AVE FUN!
  73.  
  74.      ┘OU MAY ALSO TRY TO REWRITE THE PROGRAM TO INPUT THE MASK OR THE PATTERN STRING, ═$ AND TO ELIMINATE IT FROM THE ─┴╘┴ LINES. ┘OU COULD THEN RECYCLE THROUGH LINES 220-300 WITHOUT USING THE INITIAL TABULATION IN LINES 140-200 AGAIN.
  75.  
  76.      ╘HE MATCHING IS DONE BY FIRST DECIDING WHETHER WE ARE DEALING WITH A NON-STAR CHARACTER (LINE 250). ╔F IT IS A STAR WE COUNT IT INTO ╙, AND SKIP TO THE NEXT CHARACTER. ╧THERWISE, WE COMPARE IF A PARTICULAR CHARACTER IS THE SAME IN BOTH THE MASK AND THE RECORD. ╔F YES, ═╞ IS INCREASED.
  77.  
  78.      ╫HEN WE ARE INTERESTED IN AN EXACT MATCH OF ALL NON-STAR CHARACTERS (LINE 280), WE CHECK IF ╙ AND ═╞ ADD UP TO THE LENGTH OF THE STRING. ╔F YES, WE HAVE AN EXACT MATCH.
  79.  
  80.      ┴LTERNATIVELY, IF WE ARE TRYING TO ANSWER THE QUESTION WHETHER THERE ARE JUST ANY MATCHES (LINE 290), WE SIMPLY LOOK AT ═╞. ╔F IT IS NOT ZERO, WE KNOW AT LEAST ONE ANSWER MATCHED.
  81.  
  82.      ╙UGGESTED VARIATIONS ON THIS THEME: ├AN YOU THINK OF A WAY TO HANDLE MULTIPLE CHOICE, A,B,C,D,E, TYPE OF ANSWERS? ├OULD YOU TOTAL THE NUMBER OF PEOPLE THAT MATCH A CRITERION IN THE MASK STRING? ├AN YOU TELL HOW MANY DID NOT MATCH? ╫HAT WILL THE RESULT BE IF THE MASK CONTAINED ALL ONES? ALL ZEROS? ╩UST ONE "1"? ╚INT: IT JUST MIGHT DO THE SAME THING AS IS DONE IN LINES 160-190. ╘RY IT.
  83.  
  84.      ┘OU MIGHT WANT TO LOOK UP IN THE MANUAL THAT CAME WITH THE COMPUTER INFORMATION ABOUT MEMORY USE. ╔N THE EXAMPLE ABOVE, EACH TOTAL TAKES UP SEVEN BYTES OF STORAGE. ┼ACH PROGRAM LINE, AND THAT INCLUDES ─┴╘┴ LINES HAS AN OVERHEAD OF FIVE BYTES BEYOND THE LENGTH OF STRING, PLUS THE TWO QUOTES.
  85.  
  86.      ╙INCE WE HAVE USED DATA FROM WITHIN A PROGRAM, RATHER THAN A FILE ON TAPE OR DISK, WE CAN REREAD THE DATA OVER AND OVER AGAIN. ╙O WE DO NOT NEED ANY TABLES OF VALUES. ╘O REREAD DATA FROM A PARTICULAR LINE, ╥┼╙╘╧╥┼ <LINE NUMBER> IS USED (SEE LINE 210). ┘OU MAY WISH TO STUDY THAT COMMAND IN MORE DETAIL AT A LATER TIME.
  87.  
  88.      ┘OU MAY WISH TO READ ABOUT A ╥╒╬ COMMAND. ╫HAT DOES IT DO TO VARIABLES? ─O WE HAVE TO SET FIELD TOTALS TO ZERO BEFORE RUNNING THE PROGRAM. ╫HY OR WHY NOT?  ╫HAT DOES A ├╠╥ COMMAND DO AFTER A PROGRAM HAS RUN? ╚INT: TRY PRINTING A VALUE, SUCH AS ╦╘ AND SEE FOR YOURSELF.
  89.